package com.ddwl.schema.vo.user;

import com.ddwl.schema.bo.base.BaseBo;
import io.gitee.tooleek.lock.spring.boot.annotation.Key;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

@Getter
@Setter
@ApiModel("用户注册入参")
public class RegisterBo extends BaseBo{

    @Key
    @NotNull(message = "注册手机不能为空")
    @Pattern(regexp = "^1\\d{10}$", message = "手机号码格式错误")
    @ApiModelProperty(value = "手机号",required = true)
    private String mobile;

    @ApiModelProperty(value = "注册密码",required = true)
    private String password;

    @NotNull(message = "手机验证码不能为空")
    @Size(min = 4,max = 6,message = "请输入正确的验证码")
    @ApiModelProperty(value = "手机验证码",required = true)
    private String smsCaptcha;

    @ApiModelProperty(value = "微信OpenId")
    private String wxOpenId;

    @ApiModelProperty(value = "应用id")
    private String appId;

    @ApiModelProperty(value = "通用ID", hidden = true)
    private String unionId;

    @ApiModelProperty(value = "邀请码")
    private String inviteCode;

    @ApiModelProperty("头像")
    private String avatar;

    @ApiModelProperty("昵称名字")
    private String nickname;

    @ApiModelProperty("真实名字")
    private String realname;

    @ApiModelProperty("性别")
    private Byte sex;

    @ApiModelProperty("生日")
    private String birthday;

    @ApiModelProperty(value = "设备唯一码",hidden = true)
    private String  dk;
    @ApiModelProperty(value = "产品",hidden = true)
    private String  product;
    @ApiModelProperty(value = "城市")
    private String city;
    @ApiModelProperty(value = "省份")
    private String province;
    @ApiModelProperty(value = "国家")
    private String country;
    @ApiModelProperty("区域id")
    private String regionId;
    @ApiModelProperty(value = "邀请人id")
    private String inviteId;
    @ApiModelProperty("渠道")
    private String channel;

    @ApiModelProperty("微信加密数据")
    private String encryptedData;
    @ApiModelProperty("解密密钥")
    private String iv;

    @ApiModelProperty("会话密钥")
    private String sessionKey;

    @ApiModelProperty("分享人id")
    private String shareUserId;

    @ApiModelProperty(value = "字节跳动openID")
    private String byteOpenId;

    @ApiModelProperty(value = "字节跳动通用ID")
    private String byteUnionId;

}
